package edu.upn.sowad.proyecto.dao;

import edu.upn.sowad.proyecto.entidades;
import java.sql.*;
import java.util.Vector;

public class dUsuario 
{
    public static int VerificaUsuario(String Usuario, String Clave) throws Exception 
    {
        Connection cnn = Conexion.getConexion();
        try 
        {
            int idUsuario = 0;
            Statement stm = cnn.createStatement();
            ResultSet tabla = stm.executeQuery("SELECT * FROM Usuario WHERE Usuario='" + Usuario + "' AND Clave='" + Clave + "'");

            if (tabla.next()) 
            {
                idUsuario = tabla.getInt("idUsuario");
            }
            return idUsuario;
        } 
        catch (Exception e)
        {
            throw e;
        }
        finally
        {
            cnn.close();
        }
    }

    public static eUsuario VerificaUsuarioClienteObjeto(String User, String Pass) throws Exception {
        Connection cnn = Conexion.getConexion();
        try {
            Usuario objeto = new Usuario();
            Statement stm = cnn.createStatement();
            ResultSet tabla = stm.executeQuery("SELECT * FROM Usuario WHERE "
                    + "Usuario='" + User + "' AND Clave='" + Pass + "' and Nivel='C'");
            if (tabla.next()) {
                objeto.setIdUsuario(tabla.getInt("IdUsuario"));
                objeto.setUsuario(tabla.getString("Usuario"));
                objeto.setClave(tabla.getString("Clave"));
                objeto.setNivel(tabla.getString("Nivel"));
                return objeto;
            } else {
                return null;
            }
        } catch (Exception ex) {
            throw ex;
        } finally {
            cnn.close();
        }
    }

    public static Usuario VerificaUsuarioEmpleadoObjeto(String User, String Pass) throws Exception {
        Connection cnn = Conexion.getConexion();
        try {
            Usuario objeto = new Usuario();
            Statement stm = cnn.createStatement();
            ResultSet tabla = stm.executeQuery("SELECT IdUsuario, Usuario, Clave, Nivel FROM Usuario WHERE "
                    + "Usuario='" + User + "' AND Clave='" + Pass + "' and Nivel='A'");
            if (tabla.next()) {
                objeto.setIdUsuario(tabla.getInt("IdUsuario"));
                objeto.setUsuario(tabla.getString("Usuario"));
                objeto.setClave(tabla.getString("Clave"));
                objeto.setNivel(tabla.getString("Nivel"));
                return objeto;
            } else {
                return null;
            }
        } catch (Exception ex) {
            throw ex;
        } finally {
            cnn.close();
        }
    }

    public static int InsertarUsuarioCliente(Usuario objUsuario) throws Exception {
        Connection cnn = Conexion.getConexion();
        try {
            //PreparedStatement stm = cnn.prepareStatement("INSERT INTO Usuario(IdPersona, Usuario, clave, nivel) values(" + persona + ",?,?,'C')");
            //stm.setInt(1, objUsuario.getIdPersona());
            //stm.setString(1, objUsuario.getUsuario());
            //stm.setString(2, objUsuario.getClave());
            CallableStatement cstm = cnn.prepareCall("exec IngresarUsuarioCliente " + objUsuario.getIdPersona() + ", '" + objUsuario.getUsuario() + "', '" + objUsuario.getClave() + "'");
            int cont = cstm.executeUpdate();
            return cont;
        } catch (Exception e) {
            throw e;
        } finally {
            cnn.close();
        }
    }

    public static int ModificarUsuarioAdministrador(Usuario objUsuario) throws Exception {
        Connection cnn = Conexion.getConexion();
        try {
            //PreparedStatement stm = cnn.prepareStatement("INSERT INTO Usuario(IdPersona, Usuario, clave, nivel) values(" + persona + ",?,?,'C')");
            //stm.setInt(1, objUsuario.getIdPersona());
            //stm.setString(1, objUsuario.getUsuario());
            //stm.setString(2, objUsuario.getClave());
            CallableStatement cstm = cnn.prepareCall("exec ModificarUsuarioAdministrador " + objUsuario.getIdUsuario() + ", '" + objUsuario.getUsuario() + "', '" + objUsuario.getClave() + "'");
            int cont = cstm.executeUpdate();
            return cont;
        } catch (Exception e) {
            throw e;
        } finally {
            cnn.close();
        }
    }

    public static int ModificarUsuarioCliente(Usuario objUsuario) throws Exception {
        Connection cnn = Conexion.getConexion();
        try {
            //PreparedStatement stm = cnn.prepareStatement("INSERT INTO Usuario(IdPersona, Usuario, clave, nivel) values(" + persona + ",?,?,'C')");
            //stm.setInt(1, objUsuario.getIdPersona());
            //stm.setString(1, objUsuario.getUsuario());
            //stm.setString(2, objUsuario.getClave());
            CallableStatement cstm = cnn.prepareCall("exec ModificarUsuarioCliente " + objUsuario.getIdUsuario() + ", '" + objUsuario.getUsuario() + "', '" + objUsuario.getClave() + "'");
            int cont = cstm.executeUpdate();
            return cont;
        } catch (Exception e) {
            throw e;
        } finally {
            cnn.close();
        }
    }
}